﻿using System.Collections.Generic;

namespace WeWork.Model
{
    /// <summary>
    /// 获取会话内容结果
    /// </summary>
    public class GetChatData
    {
        /// <summary>
        /// 0表示成功，错误返回非0错误码，需要参看errmsg。Uint32类型
        /// </summary>
        public int errcode { get; set; }
        /// <summary>
        /// 返回信息，如非空为错误原因。String类型
        /// </summary>
        public string errmsg { get; set; }
        /// <summary>
        /// 聊天记录数据内容。数组类型。包括seq、msgid等内容
        /// </summary>
        public List<ChatData> chatdata { get; set; }
    }
    /// <summary>
    /// 加密的会话消息
    /// </summary>
    public class ChatData
    {
        /// <summary>
        /// 消息的seq值，标识消息的序号。再次拉取需要带上上次回包中最大的seq。Uint64类型，范围0-pow(2,64)-1
        /// </summary>
        public long seq { get; set; }
        /// <summary>
        /// 消息id，消息的唯一标识，企业可以使用此字段进行消息去重。String类型。
        /// msgid以_external结尾的消息，表明该消息是一条外部消息。msgid以_updown_stream结尾的消息，表明该消息是一条上下游消息。
        /// </summary>
        public string msgid { get; set; }
        /// <summary>
        /// 加密此条消息使用的公钥版本号。Uint32类型
        /// </summary>
        public int publickey_ver { get; set; }
        /// <summary>
        /// 使用publickey_ver指定版本的公钥进行非对称加密后base64加密的内容，需要业务方先base64 decode处理后，再使用指定版本的私钥进行解密，得出内容。String类型
        /// </summary>
        public string encrypt_random_key { get; set; }
        /// <summary>
        /// 消息密文。需要业务方使用将encrypt_random_key解密得到的内容，与encrypt_chat_msg，传入sdk接口DecryptData,得到消息明文。String类型
        /// </summary>
        public string encrypt_chat_msg { get; set; }
    }
}
